package utils.dataComb;
import java.text.Collator;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import java.util.TreeSet;


/**
 * Class with base methods for implementing a data combination criteria.
 * 
 *
 */
public abstract class Criteria {
	
	
	private List<List<Object>> parametersInputValues;
	
	
	/**
	 * The constructor filters the empty lists that might be added 
	 * on the list of values.
	 * 
	 * @param parametersInputValues: values for each parameter
	 */
	public Criteria(List<List<Object>> parametersInputValues) {
		List<List<Object>> filteredList = new ArrayList<>();
		
		// Filtering empty lists
		for(List<Object> parameterInputValue : parametersInputValues) {
			if(!parameterInputValue.isEmpty()) {
				filteredList.add(parameterInputValue);
			}
		}
		
		this.parametersInputValues = filteredList;
	}

	
	
	public List<List<Object>> getParametersInputValues() {
		return parametersInputValues;
	}

	
	
	public void setParametersInputValues(List<List<Object>> parametersInputValues) {
		this.parametersInputValues = parametersInputValues;
	}
	
	
	
	public abstract Set<List<Object>> getCombinations();
	
}
